#ifndef STUDENTLIST_H
#define STUDENTLIST_H
/**********************************
包含头文件
**********************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/**********************************
结构体定义
**********************************/
typedef struct score{
  int Chinese;
  int Math;
  int English;
}SCORES;

typedef struct student{
  char *number;
  char *name;
  char *phone;
  struct score *scores;
  struct student *next;
}STUDENT;
/**********************************
函数声明
**********************************/

// 创建空链表
STUDENT *creat_list();
// 创建节点
STUDENT *creat_node_by_basic_information(const char *number, const char *name, const char *phone);
// 尾部插入节点
void insert_node(STUDENT *head, STUDENT *node);
// 根据姓名查找节点
STUDENT *find_node_by_name(STUDENT *head, const char *name);
// 根据名字删除节点
void del_node_by_name(STUDENT *head, const char *name);
// 打印学生基本信息
void display_basic_information(STUDENT *node);
// 打印学生成绩信息
void display_score(STUDENT *node);
// 打印全部学生基本信息
void display_all_basic_information(STUDENT *head);
// 摧毁链表
void destory_list(STUDENT **head);

// 添加成绩
void insert_stuNode_score(STUDENT *head, const char *name, int Chinese, int Math, int English);
// 打印所有学生成绩信息
void display_all_scores(STUDENT *head);

// 修改学生电话号码
void change_phone_number(STUDENT *head, const char *name, const char *NewPhone);

#endif